Tengo un problema con la lista de datos: tengo demasiados valores en mi lista de datos para usar una selección simple. Cambié mi html para usar una lista de datos en su lugar. El problema es que el valor seleccionado es "nulo" cuando quiero configurarlo en la hoja. Los valores son como: "PDCTLEA1-N00C06" en la lista "mesSwitchs".
<script> function validerAd() { let idPort1a = document.getElementById("idPort1a").value; google.script.run.nouvAdresse(idPort1a); } <form> <p8> <label for="idPort1a" id="labelPort1a">Choisissez un switch :</label> <input list="idPort1a" name="idPort1a" id="idPort1aListe"> <datalist id="idPort1a"> <br/> <? for (var i = 0; i < mesSwitchs.length; i++) { ?> <option value="<?= mesSwitchs[i][0] ?>" ><?= mesSwitchs[i][0] ?></option> <? } ?> </datalist> </p8> function nouvAdresse(idPort1a) { AdressesIP.getRange(2,2).setValue(idPort1a); }En la hoja, establecerá "nulo" en lugar del valor seleccionado. Sabes por qué ?
Lo único que puedo pensar es un error tipográfico. Estás usando idPort1a en todas partes.
Pero está intentando pegar idPort1 (sin a ) en su función.
Probablemente su función debería verse así:
function nouvAdresse(idPort1a) { AdressesIP.getRange(2,2).setValue(idPort1a); // <-- here }Solo una suposición.
Incluso si no tiene un error tipográfico en su código real, parece que está recuperando el valor de <datalist> ; Los elementos de la lista de datos no tienen un atributo de value , por lo que siempre permanecerá sin definir:
let idPort1a = document.getElementById("idPort1a").value; Si desea obtener la opción seleccionada, debe recuperar el valor del elemento <input> correspondiente en su lugar:
function validerAd() { let idPort1aListe = document.getElementById("idPort1aListe").value; google.script.run.nouvAdresse(idPort1aListe); }Como dijeron otros, hay un error tipográfico en el código que proporcionó:
function nouvAdresse(idPort1a) { AdressesIP.getRange(2,2).setValue(idPort1); // idPort1 should match the function argument }